---
title: 简介

sidebar_position: 1
---

# 简介

## 概述

Wails 是一个可让您使用 Go 和 Web 技术编写桌面应用的项目。

将它看作为 Go 的快并且轻量的 Electron 替代品。 您可以使用 Go 的灵活性和强大功能，结合丰富的现代前端，轻松的构建应用程序。

Wails 一点也不弱！这是 [xbar](https://xbarapp.com) - 一个使用 Wails 编写的 MacOS 桌面应用。它使用 Mac 的系统原生菜单，支持浅色和深色桌面主题，主窗口使用半透明，使其具有原生应用的“冰霜” 效果。

<div class="text--center">
  <a href="https://xbarapp.com">
    <img src="/img/xbar-app-preview-2.png" />
  </a>
</div>

## 原生元素

Wails 使用专门构建的库来处理原生元素，例如窗口、菜单、对话框等，因此您可以构建美观、功能丰富的桌面应用程序。

**它不嵌入浏览器**，因此性能高。相反，它使用平台的原生渲染引擎。在 Windows 上，是基于 Chromium 构建的新 Microsoft Webview2 库。

## Go 和 Javascript 互操作

Wails 自动使您的 Go 方法可用于 Javascript，因此您可以从前端按名称调用它们！它甚至会生成 Go 方法使用的结构体的 Typescript 版本，因此您可以在 Go 和 Javascript 之间传递相同的数据结构。

## 运行时库

Wails 为 Go 和 Javascript 提供了一个运行时库，可以处理现代应用程序需要的很多东西，比如事件、日志、对话框等。

## 实时开发体验

### 自动重新构建

当您在“开发”模式下运行您的应用程序时，Wails 会将您的应用程序构建为原生桌面应用程序，但会从磁盘读取您的资源。它将检测您的 Go 代码的任何更改并自动重新构建和重新启动您的应用程序。

### 自动重新加载

当检测到您的应用程序资源发生更改时，您正在运行的应用程序将“重新加载”，几乎立即反馈您的更改。

### 在浏览器中开发您的应用程序

如果您更喜欢在浏览器中调试和开发，那么 Wails 可以满足您的需求。正在运行的应用程序还有一个网络服务器，它将在连接到它的任何浏览器中运行您的应用程序。当您的资源在磁盘上发生变化时，它会刷新。

## 可用于生产的原生二进制文件

当您准备好完成应用程序的最终构建时，CLI 会将其编译为单个可执行文件，并将所有资源打包到其中。在 Windows 和 MacOS 上，可以创建用于分发的原生包。使用打包工具后生成的资源（图标、info.plist、清单文件等）是您项目的一部分，可以自定义，让您完全控制应用程序的构建方式。

## 工具

Wails CLI 提供了一种简单的方法来生成、构建和打包您的应用程序。它将完成创建图标的繁重工作，使用最佳设置编译您的应用程序，并提供可分发的、可用于生产的二进制文件。可以从许多入门模板中进行选择，以快速启动和运行！
